package com.ruijixiang.leetcode.everyday.leetcode2024.leetcode202410;

import java.util.Arrays;

public class leetcode20241021{
    /**
     * 贪心策略：让小的变大，大的变小
     * @param nums
     * @param k
     * @return
     */
    public int smallestRangeII(int[] nums,int k){
        Arrays.sort(nums);
        int n=nums.length;
        int res=nums[n-1]-nums[0];// 初始差值
        for(int i=1;i<n;i++){
            // 0~(i-1)的数变大，i~(n-1)的数变小
            int min=Math.min(nums[0]+k,nums[i]-k);// 最小值
            int max=Math.max(nums[n-1]-k,nums[i-1]+k);// 最大值
            res=Math.min(max-min,res);
        }
        return res;
    }
}
